1. Field of the Invention
The invention relates to industrial controllers, and, more particularly, to an industrial controller equipped with a runtime system, containing a running level model having a plurality of prioritized running levels of different types. The invention also relates to the creation of a runtime system of an industrial controller with synchronously clocked system and user levels.
2. Description of the Related Art
Today, it is customary, both for stored-program control (SPC) and for motion control (MC) systems, to provide different hierarchical running levels and to have different software applications for controlling the respective technical processes. The software applications used today may be user-programmed or they can have built-in system functions.
It is known from German application DE 197 40 550 A1, which is hereby incorporated by reference in its entirety, that process control functionalities of the stored-program controllers xe2x80x9cSPCxe2x80x9d and motion functionalities of MC controllers can be integrated in a uniform configurable control system.
This SPC/MC integration is obtained by using interconnecting SPC and MC control modules. However, when the integration is carried out in such a way, an optimum and efficient task structure is not achieved for all control tasks. Furthermore, mostly the classic MC functionalities are supported, with this type of integration, particularly for machine tools, whereas other requirements for the controller, as they are known from the operation of production machines, are not optimally supported by this type of interconnection of SPC and MC control modules.
In German application DE 19 93 19 33.2 which is hereby incorporated by reference in its entirety, a communication system clock is used between the PC system and the peripheral devices for a change between a real-time operating program and a non-real-time operating program. Here, however, it is the task of this communication system clock to allow the smoothest possible change between real-time and non-real-time applications in an industrial process. However, in this example, the basic clock is derived only from the clock of the communication medium and is only used for changing the operating system mode of a PC system.
Accordingly, there remains a need for the integration of a plurality of automation components in a uniform running level model of a respective runtime system of an industrial controller.
An object of the present invention is to create optimum distinctive characteristics of an industrial controller for different control tasks and different boundary conditions or requirements of the underlying technical process, providing both SPC and MC functionality and consequently also being suitable for the control of production machines.
In order to meet this and other objects which will become apparent with reference to further disclosure set forth below, the present invention provides an integration system and method for automation components, in which optimum distinctive characteristics are achieved by a uniform configurable running level model for the control tasks of the industrial controller.
The runtime system of the industrial controller contains a running level model which has a plurality of running levels of different types which are associated with different priorities. The following exemplary running levels may be provided in the system:
(a) a group of levels with synchronously clocked levels derived from a basic clock, including at least one system level and at least one user level, where the levels of this group of levels can have further prioritizing with respect to one another;
(b) a user level for system exceptions;
(c) an event-controlled user level;
(d) a time-controlled user level;
(e) a sequential user level; and
(f) a cyclical user level,
user levels of the group of levels a) optionally being able to run synchronously in relation to one of the system levels of the group of levels a).
An advantage of this stratification is that the communication between the tasks of the stored-program controller (SPC) and those of the motion controller (MC) is minimized. A further advantage is that the programming of the control tasks for the SPC and the MC can take place in a uniform programming language with a uniform creation interface which allows the user to flexibly create a running level model tailor-made for his respective requirements.
In one embodiment of the present invention, the basic clock of the running level model is derived from either an internal timer, an internal clock of a communication medium, an external device or from a variable which belongs to the technological process. As a result, the basic clock for the running level model is derived in a flexible manner. The fact that the basic clock for the running level model may be derived from a variable which belongs to the technological process allows direct feedback from the technological process to the controller to be readily obtained.
In another embodiment of the present invention, an event-controlled user level, a time-controlled user level, a sequential user level, a cyclical user level and a user level for system exceptions are optional. As a result, the user can flexibly create a controller which efficiently achieves the actual requirements and which contains the running levels required at the specific time to minimize unnecessary overhead.
In yet another embodiment of the present invention, the synchronous levels are clocked in relation to the basic clock with a step-up and/or step-down ratio and/or in the ratio 1:1. As a result, the levels can be easily clocked to a multiple of the basic clock or else be clocked in to a reciprocal multiple. On the basis of a common starting variable, step-up ratios or step-down ratios can consequently be achieved very easily for the respective levels.
In still another embodiment of the present invention, further prioritizing stratifications are provided within the running levels. As a result, the software structure of the industrial controller can be adapted to the different control tasks or to the requirements of the underlying technical process. Consequently, for example, different causes of faults can be assigned to different levels, for example, with ascending priority.
In yet another embodiment of the present invention, user tasks are optionally run through during system running-up. Furthermore, it can be ensured by user programming that during system running-up or that, by user programming, it can be ensured during system running-down that the axes present in the system assume a defined position.
In still another embodiment of the present invention, user programs are loaded into the user levels. This allows the user to adapt the functionality of the controller to the underlying requirements of the technical process in user programs and also allows the user to load the user programs into different user levels, to achieve distinctive characteristics of the controller that are effective for specific applications.
In still another embodiment of the present invention, user programs which, depending on the type of user level, are programmed in a cycle-oriented or sequential manner, are loaded into the user levels. In this arrangement, the user can load both cycle-oriented user programs (for example typical SPC functionality) and sequential or sequence-oriented user programs (for example typical motion functionality) into a uniform running level model or runtime system of an industrial controller. The user can further load programs programmed according to different paradigms (cycle-oriented for SPC functionality and sequentially or sequence-oriented for motion functionality) into the user levels of the running level model. Cycle-oriented programs are typically cycle-time-monitored.
In yet another embodiment of the present invention, the additional loading of technology packages into the system levels allows the technological functionality of the controller to be extended. In this case, the user can dynamically tailor the set of basic system commands to the respective requirements of the underlying technological process or control task. The basic system in this case forms the extent of the items delivered for the runtime system of a controller, such as a real-time operating system, a running system (with system and user levels), voice commands, the SPC set of commands and also communication interfaces (for example LAN, I/O) and technological interfaces (for example drives, sensors) with respect to the technical process. Consequently, the necessary basic functionality of a controller is located in the basic system. In this case, the basic system is capable of running on a wide variety of HW platforms (for example PC-based, drive-based, controller-based). In addition, the loading of technology packages also provides a user with the possibility of scaling the runtime system of the controller.
In still another embodiment of the invention, the mechanisms which enable users to wait in the program cycle for any desired condition are provided. The program flow continues when the condition is satisfied and the program flow is stopped until it is established that the condition has been satisfied. In this case, while waiting for the condition to be satisfied, checking for the condition being satisfied is assigned a higher priority in comparison with the priority of the current task. This mechanism makes it possible to express a unified and closed task definition in a user program code without further mechanisms, such as event handlers. The mechanism described and the associated command are referred to hereafter as the xe2x80x9cwait_for_condition.xe2x80x9d This command avoids a management overhead in the controller, which directly enhances the system performance. The command also supports the locality principle from a programming viewpoint, which, for example, can make program debugging easier.
In another embodiment of the present invention, process signals and/or internal signals of the controller and/or variables from user programs can be used for the formulation of the conditions being monitored. This makes it possible for the user to combine process signals, internal control signals or user variables in a uniform way when describing the conditions.
In yet another embodiment of the present invention, various running levels which are processed in multiples of a basic clock are provided, technological functions being freely assigned to the running levels. Axes and technological sequences require different accuracies and response capabilities. They can, therefore, be computed in different timing patterns (for example one axis is computed in the 1 ms clock, another in the 2 ms clock). For lower overall loading of the runtime system or the overall system, the corresponding tasks are processed only with as high a priority as necessary in the present embodiment.
In still another embodiment of the present invention, the runtime system of the controller contains a running level model which has a plurality of running levels of different types and different priorities. Exemplary running levels include:
(a) a level which is activated when there are technological faults;
(b) a level which is activated when there is cycle time monitoring of the background tasks;
(c) a level which is activated when there are programming faults;
(d) a level which is activated when there are system faults;
(e) a level which is activated when there are faults or alarms in the peripherals;
(f) a level which is activated when time monitors respond;
(g) at least one level which is activated when user interrupts are detected;
(h) an interpolator level;
(i) at least one level for timer interrupts;
(j) at least one level for the, preferably sequential, processing of motion tasks; and
(k) a level for background processing.
Other user tasks are run through during system running-up and/or during system running-down. This running level structure allows for an efficient runtime system for industrial controllers for production machines.
In yet another embodiment of the present invention, the basic clock of the running level model is derived either from an internal timer, an internal clock of a communication medium, or from a variable which belongs to the technological process. A user consequently has greater flexibility for creating the basic clock. For example, the basic clock can be derived from equidistant bus systems, such as the Profibus.
Also in accordance with the invention is the method for integrating automation components which includes the steps of:
(a) clock generation from either of an internal hardware clock, a communication system and a variable of a technological process;
(b) providing system and user levels for the runtime system which provide running levels synchronized with respect to this basic clock;
(c) providing at least one user level which is integrated in a synchronous manner with respect to the system level or levels; and
(d) programming the user level or user levels.
As a result, a user can create, in a defined way, a runtime system of an industrial controller with synchronously clocked system and user levels which integrates process control functionalities of stored-program controllers xe2x80x9cSPCxe2x80x9d and motion functionalities of MC controllers.